2018-9-12 Spring学习笔记
Spring有关Bean的配置中如果value中存在尖括号(<>)或者其他特殊字符你可以通过内部使用<value></value> 标签进行添加并进行转义([CDATA[]])
例如:1
2
3<bean>
<constructor-arg value="<Shanghai>" type="java.lang.String"></constructor-arg>
</bean>
你会发现bean加载的时候会报错
这时候可以利用<value></value>中添加<![CDATA[<>]]>的形式来写
所以如上例子可以写成1
2
3
4
5<bean id="car2>
<constructor-arg type="java.lang.String">
<value><![CDATA[<ShangHai>]]></value>
</constructor-arg>
</bean>
如果你需要再bean中能相互访问其他的bean你可以通过ref属性的形式或者写一匿名内部bean
- 使用ref属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15<bean id="car2" class="com.example.spring.beans.Cars">
<constructor-arg value="BMW" type="java.lang.String"></constructor-arg>
<constructor-arg type="java.lang.String">
<value><![CDATA[<ShangHai>]]></value>
</constructor-arg>
<constructor-arg type="int">
<value>250</value>
</constructor-arg>
</bean>
<bean id="person" class="com.example.spring.beans.Person">
<property name="name" value="Tom" ></property>
<property name="age" value="24"></property>
<property name="car" ref="car2"><property>
</bean>
或者也可以这么写1
2
3
4
5
6
7<bean id="person" class="com.example.spring.beans.Person">
<property name="name" value="Tom" ></property>
<property name="age" value="24"></property>
<property name="car">
<ref bean="car2" />
<property>
</bean>
- 使用匿名内部bean
1
2
3
4
5
6
7
8
9
10
11<bean id="person" class="com.example.spring.beans.Person">
<property name="name" value="Tom" ></property>
<property name="age" value="24"></property>
<property name="car">
<bean class="com.example.spring.beans.Car">
<constructor-arg value="Ford"></constructor-arg>
<constructor-arg value="ChangAn"></constructor-arg>
<constructor-arg value="200000" type="double"></constructor-arg>
</bean>
</property>
</bean>
==内部bean的id标记无效 #e91e63==
对于spring级联属性的例子
1 | <bean> |
可以看到直接可以在bean里面直接赋值了
注意如果在之前没有在赋值之前初始化属性是不可以赋值的
配置集合类型属性
1 | <bean id="com.example.spring.beans.Person".> |
配置Map属性
1 | <bean id="NewPerson" class="com.example.spring.beans.NewPerson"> |
配置properties属性值
1 | <bean id="dataSource" class="com.example.spring.bean.DataSource"> |